home *** CD-ROM | disk | FTP | other *** search
- Python Cryptography Toolkit (pycrypto)
- ======================================
-
- This is a collection of both secure hash functions (such as MD5 and SHA),
- and various encryption algorithms (AES, DES, IDEA, RSA, ElGamal, etc.). The
- package is structured to make adding new modules easy. I consider this
- section to be essentially complete, and the software interface will almost
- certainly not change in an incompatible way in the future; all that remains
- to be done is to fix any bugs that show up. If you encounter a bug, please
- report it in the SourceForge bug tracker at
- https://sourceforge.net/tracker/?group_id=20937&atid=120937
-
- An example usage of the MD5 module is:
- >>> from Crypto.Hash import MD5
- >>> hash=MD5.new()
- >>> hash.update('message')
- >>> hash.digest()
- 'x\xe71\x02}\x8f\xd5\x0e\xd6B4\x0b|\x9ac\xb3'
-
- An example usage of an encryption algorithm (AES, in this case) is:
-
- >>> from Crypto.Cipher import AES
- >>> obj=AES.new('This is a key456', AES.MODE_ECB)
- >>> message="The answer is no"
- >>> ciphertext=obj.encrypt(message)
- >>> ciphertext
- 'o\x1aq_{P+\xd0\x07\xce\x89\xd1=M\x989'
- >>> obj2 = AES.new('This is a key456', AES.MODE_ECB)
- >>> obj2.decrypt(ciphertext)
- 'The answer is no'
-
- One possible application of the modules is writing secure
- administration tools. Another application is in writing daemons and
- servers. Clients and servers can encrypt the data being exchanged and
- mutually authenticate themselves; daemons can encrypt private data for
- added security. Python also provides a pleasant framework for
- prototyping and experimentation with cryptographic algorithms; thanks
- to its arbitrary-length integers, public key algorithms are easily
- implemented.
-
- Development of the toolkit can be discussed on the pct mailing list;
- archives and instructions for subscribing at at
- <URL:http://www.amk.ca/mailman/listinfo/pct>.
-
-
- Installation
- ============
-
- The toolkit is written and tested using Python 2.2, though it should
- also work with Python 2.1. Python 1.5.2 is not supported, and the
- setup.py script will abort if you run it with 1.5.2.
-
- The modules are packaged using the Distutils, so you can simply run
- "python setup.py build" to build the package, and "python setup.py
- install" to install it.
-
- If the setup.py script crashes with a DistutilsPlatformError
- complaining that the file /usr/lib/python2.2/config/Makefile doesn't
- exist, this means that the files needed for compiling new Python
- modules aren't installed on your system. Red Hat users often run into
- this because they don't have the python2-devel RPM installed. The fix
- is to simply install the requisite RPM.
-
- To verify that everything is in order, run "python test.py". It will test
- all the cryptographic modules, skipping ones that aren't available. If the
- test script reports an error on your machine, please report the bug using
- the bug tracker (URL given above). If possible, track down the bug and
- include a patch that fixes it.
-
- To install the package under the site-packages directory of
- your Python installation, run "python setup.py install".
-
- If you have any comments, corrections, or improvements for this package,
- please send it to the 'pct' mailing list. Good luck!
-
- --amk (www.amk.ca)
-